{"text_format":"1","workbook":"xlsx","n_sheets":8,"sheets":["4 - Génération PDF & Signature","1 - Résultat Formulaire","2 - Base Commune","3 - App Web","3 - App Mobile","3 - Client Lourd 3Tiers ou plus","3 - Client Lourd < 3-Tiers","Feuille Calcul Resultat"],"not_rendered":{"charts":0,"images":1,"macros":1,"external_links":0,"defined_names":12,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"4 - Génération PDF & Signature","index":0,"n_rows":20,"n_cols":3,"rows_kept":20,"cut":false,"hidden":false,"merged":[[32,4,32,12],[33,4,33,12],[34,4,34,12],[26,1,26,12],[27,4,27,12],[28,4,28,12],[29,4,29,12],[30,4,30,12],[23,1,23,2],[23,3,23,12],[24,1,24,2],[24,3,24,12],[31,4,31,12],[14,1,14,12],[19,2,19,12],[18,2,18,12],[16,1,16,12],[22,1,22,12]]}
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[null,"Le guide d'utilisation du formulaire du test d'intrusion doit être consulté avant de travailler sur ce document"]
[]
[null,"Génération du PDF & Signature électronique\n\nUne fois le formulaire complété (Base Commune & uniquement un onglet correspondant au type de l'application), il vous suffit de renseigner le répertoire où vous voulez sauvergarder votre fichier au niveau de la ligne \"Lien\"(par défaut, le chemin d'accès pointe vers le dossier utilisateur de votre poste de travail et correspond à un système d'exploitation Windows. Vous pouvez le modifier si vous utilisez un autre système d'exploitation), ainsi que renommer le nom du questionnaire au format : \"Test intrusion_NOM APPLICATION.pdf\" (il ne faut pas supprimer l'extension du fichier). Une fois ces modifications apportées, il vous suffit de cliquer sur le bouton \"Génération PDF\". \n\nEn cas de dysfonctionnement de la macro, vous pouvez générer le PDF manuellement en suivant les étapes suivantes :\n1. Positionner vous sur l'onglet \"Résultat Formulaire\" ;\n2. Sélectionner les feuilles à exporter (obligation de sélectionner l'onglet \"Résultat Formulaire\", \"Base Commune\" et le type d'application) en effectuant un ctrl+clic gauche ;\n2. Une fois la sélection effectuée, cliquer sur Fichier, Exporter, Créer PDF ;\n3. Renommer le document au format : \"Test intrusion_NOM APPLICATION.pdf\".\n\nUne fois le PDF généré, le formulaire doit être signé électroniquement, avec l’approbation d’un TSP (Trust Service Provider). Pour apposer cette signature électronique, deux options sont possibles (détails des étapes disponibles dans l’annexe 4 : processus autour de la signature électronique) : \n1. Via une application bureautique telle qu’Adobe avec un certificat de signature délivré par un TSP ;\n2. Via une plateforme de signature électronique reconnue telle que DocuSign, Docaposte, YouSign, etc.\nCe fichier signé électroniquement, avec l’approbation du TSP via un certificat de signature ou via une plateforme de signature électronique, constitue une preuve essentielle que l’éditeur devra soumettre dans le cadre de sa candidature pour le référencement Ségur."]
[]
[null,"Lien","C:\\Users\\lea.segovia"]
[null,"Nom","Test intrusion_NOM APPLICATION.pdf"]

{"sheet":"1 - Résultat Formulaire","index":1,"n_rows":31,"n_cols":5,"rows_kept":31,"cut":false,"hidden":false,"merged":[[16,1,16,7],[20,4,20,7],[26,4,26,6],[13,2,13,6],[18,1,18,7],[25,4,25,5],[22,4,23,7],[22,1,22,3]]}
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[null,null,"Questionnaire d'audit de sécurité pour le référencement Ségur"]
[]
[]
[null,"Le Ségur du Numérique en Santé a été créé dans l’objectif de généraliser le partage fluide et sécurisé des données de santé entre professionnels et usagers pour mieux prévenir et mieux soigner. Ce programme viendra alimenter Mon espace santé, qui permet à chaque citoyen de disposer d’une vision consolidée de son parcours de soins afin d’être acteur de sa santé. L’Etat a donc mis en place un mécanisme d’achat au bénéfice des acteurs de l’offre de soins, sous la forme d’un système ouvert et non sélectif (SONS) de référencements d’éditeurs de solutions logicielles. "]
[]
[null,"Ce formulaire, effectué par un prestataire d'audit de la sécurité des systèmes d'information qualifé (PASSI), atteste la réalisation d'un test d'intrusion dans le cadre du référencement Ségur.\nCe document précise les règles de sécurité validées par l'auditeur, ainsi que le résultat du référencement de l'application vis à vis des exigences de sécurité informatique."]
[]
[null,"Nom de l'application & version"]
[]
[null,"Description succincte de l'application"]
[]
[]
[null,"Type d'application"]
[null,"Résultat",null,null,{"$f":"IF(COUNTIF('Feuille Calcul Resultat'!B1:B10,\"0\")>=1,\"L'application ne peut être référencée\",\"L'application peut être référencée\")","v":"L'application peut être référencée"}]
[]
[]
[]
[null,null,null,"Signature de l'auditeur :"]

{"sheet":"2 - Base Commune","index":2,"n_rows":22,"n_cols":7,"rows_kept":22,"cut":false,"hidden":false,"merged":[[1,0,1,6]]}
[]
["Résultat d'audit de sécurité - Base Commune"]
[]
["ID","Périmètre","Nom court","Règles de sécurité","Notation","Commentaire","Gravité"]
["C1","Gestion de l’authentification","Autocomplétion","Aucun des champs de mot de passe n'affiche ce dernier lorsqu'il est saisi et l'auto-complétion est bien désactivée sur l'intégralité des champs",null,null,"Moyenne"]
["C2","Gestion de l’authentification","Complexité MDP","La complexité du mot de passe doit permettre d’assurer, au minimum, une entropie équivalente à une clé d'une longueur de 50 bits (https://www.cnil.fr/fr/verifier-sa-politique-de-mots-de-passe). Ce contrôle doit impérativement être effectué côté serveur (Exigence 25 du RIE AS-PP). Il peut également être effectué côté client dans une logique de performance, mais ne remplacera pas le contrôle côté serveur.",null,null,"Haute"]
["C3","Gestion de l’authentification","Anti bruteforce","Une mesure de restriction d'accès parmi les suivantes est appliquée en cas de tentatives multiples d'authentification :\n- De préférence une temporisation d'accès au compte après plusieurs échecs, dont la durée augmente dans le temps ; cette durée doit être supérieure à 1 minute après 5 tentatives échouées, puis supérieure à 10 minutes au delà de 20 tentatives infructueuses ; \n- Tout autre mécanisme permettant de se prémunir contre les soumissions automatisées et intensives de tentatives (p. ex. : « captcha », blocage de compte, etc.).",null,null,"Haute"]
["C4","Gestion de l’authentification","Changement MDP","En cas de renouvellement ou changement de mot de passe la complexité du mot de passe doit rester conforme à la politique du produit, telle que décrite dans la règle C2.",null,null,"Moyenne"]
["C5","Gestion des sessions","Déconnexion","Dans un contexte de \"protocole avec état\" (stateful), la session est invalidée quand l'utilisateur se déconnecte du produit.\nDans un contexte de \"protocole sans état\" (stateless), l'élément porteur de l'authentification doit avoir une durée de vie inférieure ou égale à 2 heures",null,null,"Moyenne"]
["C6","Gestion des sessions","Invalidation après inactivité","La session est invalidée au terme d'une période d'inactivité de 2 heures maximum.",null,null,"Moyenne"]
["C7","Gestion des sessions","changement ID session","Lorsque l'application s'appuie sur des mécanismes de session, l'identifiant associé doit être changé à chaque nouvelle connexion sans avoir de lien prédictible avec la précédente",null,null,"Haute"]
["C8","Contrôle d’accès aux ressources","Directory traversal","L'escalade de répertoire (\"directory traversal\") est désactivée pour l'ensemble des utilisateurs. Aucun utilisateur ne doit pouvoir accéder à un dossier/répertoire du serveur sur lequel il n'a pas les droits",null,null,"Haute"]
["C9","Comptes génériques","Exposition des comptes génériques","Les comptes génériques éventuels doivent être restreints à des comptes de service (non destinés aux utilisateurs) ou à des usages ponctuels qui requièrent des privilèges spécifiques.",null,null,"Haute"]
["C10","Gestion des traces et événements de sécurité","Journalisation technique - authentification","Toutes les tentatives d'authentification doivent être enregistrées avec un horodatage en UTC associé à chaque événement d'authentification.",null,null,"Haute"]
["C11","Gestion des traces et événements de sécurité","Journalisation technique des données sensibles","Sauf exception justifiée liée à la réglementation, aucun secret (cf. définition du guide d'utilisation) n'est journalisé par défaut. Dans le cas contraire, la confidentialité des données doit être garantie dans les traces (hash, etc.)",null,null,"Haute"]
["C12","Gestion des traces et événements de sécurité","Composition des Journaux","Chaque événement de journalisation est géré côté serveur et inclut les éléments relatifs au référentiel DMP, à savoir : \n* L'identifiant local\n* l'identifiant national (optionnel)\n* La date et l'heure\n* les références des données et documents concernées par l'accès\n* le détail des actions effectuées par l'utilisateur",null,null,"Moyenne"]
["C13","Gestion des traces et événements de sécurité","Journalisation des événements","Les événements de sécurité côté serveur sont journalisés (doit être enregistré a minima, l'authentification erronée, le refus d'accès à une ressource, etc.)\n(NB : applicable uniquement si l'industriel ou un tiers sous sa responsabilité assure l'hébergement de tout ou partie des composants du produit, ou fournit tout ou partie du produit sous forme de service)",null,null,"Moyenne"]
["C14","Composant vulnérable","Système à jour","\"Lors d'un scan, le système doit être constitué d'éléments ne présentant aucune vulnérabilité de sécurité d'un score CVSS v3 supérieur ou égal à 8.\nNB : Lorsque l'auditeur juge que l'exploitation d'une vulnérabilité est complexe en raison du contexte applicatif de la solution, il est possible de valider la règle de sécurité en incluant ces détails dans un commentaire explicatif - cf.guide d'utilisation\"",null,null,"Haute"]
["C15","Composant vulnérable","Système à jour","Lors d'un scan, le système doit être constitué d'éléments ne présentant aucune vulnérabilité de sécurité d'un score CVSS v3 compris entre 4 et 8.\n(NB : Lorsque l'auditeur juge que l'exploitation d'une vulnérabilité est complexe en raison du contexte applicatif de la solution, il est possible de valider la règle de sécurité en incluant ces détails dans un commentaire explicatif - cf.guide d'utilisation)",null,null,"Moyenne"]
["C16","Protection des informations","Cryptographie","Sur les flux / informations auxquels a accès l'auditeur, les données sensibles doivent être sécurisées avec des protocoles et algorithmes cryptographiques à l'état de l'art (https://www.ssi.gouv.fr/uploads/2021/03/anssi-guide-selection_crypto-1.0.pdf)",null,null,"Haute"]
["C17","Protection des communications","Cryptographie","L'ensemble des flux client-serveur sont toujours protégés par l'utilisation du chiffrement. Exemple du protocole HTTPS : les flux HTTP sont redirigés vers HTTPS et le serveur doit inclure l'entête de sécurité HSTS dans ses réponses.\n(Dans le cas d'un client lourd en architecture 2-tiers, la sécurisation des transactions avec la base de données peut être mise en place avec un canal TCP/IP à l'aide de clés publiques stockées sur les postes clients)",null,null,"Haute"]
["C18","Gestion des entrées","Prévention des injections côté client","Un filtrage des entrées utilisateur et un mécanisme d'encodage des données doivent être implémentés.\nLes caractères potentiellement dangereux doivent être échappés avant d'être retournés dans les réponses du serveur (ex : usage d'entités HTML).\nEn complément, un assainissement des données selon tout ou partie des méthodes suivantes pourrait être mis en oeuvre :\n* Un usage d'expression régulière (ex : une date devrait avoir le format JJ/MM/AAAA) ;\n* Une suppression des caractères dangereux ('<', ' \" ', etc.) , à mettre en oeuvre en dernier lieu si les deux premières options ne sont pas envisageables.",null,null,"Haute"]

{"sheet":"3 - App Web","index":3,"n_rows":28,"n_cols":7,"rows_kept":28,"cut":false,"hidden":false,"merged":[[1,0,1,6]]}
[]
["Résultat d'audit de sécurité - Application Web"]
[]
["ID","Périmètre","Nom court","Règles de sécurité","Notation","Commentaire","Gravité"]
["W1","Gestion de l’authentification","Authentification des pages","Toutes les pages et ressources exigent une authentification exceptées celles qui sont spécialement prévues pour être publiques. ",null,null,"Haute"]
["W2","Gestion de l’authentification","Déconnexion","Toutes les pages qui requièrent une authentification pour accéder à l'application, ou un service de cette dernière possèdent un lien de déconnexion et/ou affichent un bouton de déconnexion",null,null,"Moyenne"]
["W3","Gestion de l'authentification","Authentification utilisateur","La fonction de réinitialisation des mots de passe ne doit pas permettre l'énumération d'utilisateurs (ex : renvoi d'un message générique empêchant de déterminer l'existence d'un compte)",null,null,"Haute"]
["W4","Gestion des sessions","ID session","L'identifiant de session est communiqué exclusivement dans les en-têtes HTTP Cookie, Set-Cookie ou Authorization. Il ne doit jamais apparaître dans l’URL, les messages d'erreur, les formulaires, les journaux, etc.",null,null,"Haute"]
["W5","Gestion des sessions","domaine cookies","Dans le cas de l'utilisation de cookies, les cookies porteurs de session sont protégés contre les requêtes Cross-Site : leurs domaines et chemins (drapeaux, domain et path) sont définis avec une valeur suffisamment restrictive",null,null,"Haute"]
["W6","Gestion des cookies","Secure Attribute","Le drapeau de sécurité (secure attribute) est utilisé sur tous les cookies qui contiennent des données sensibles, y compris le cookie de session. ",null,null,"Haute"]
["W7","Gestion des sessions","CSRF","Des protections contre les CSRF doivent être mises en œuvre telles que l'utilisation de jeton anti-CSRF, de jeton de synchronisation, de frameworks, d'attributs sur les cookies (SameSite) ou de cookie de double soumission, etc.",null,null,"Haute"]
["W8","Gestion des entrées","Type de requêtes","L'application accepte uniquement les méthodes HTTP strictement requises et interdit notamment la méthode TRACE",null,null,"Moyenne"]
["W9","Gestion des entrées","redirection control","Des contrôles sont implémentés pour prévenir tout risque de redirection arbitraire en dehors du périmètre métier de l'application (open redirect).",null,null,"Haute"]
["W10","Gestion des entrées","XML sanitization","Afin d'éviter une XXE (XML eXternal Entity attack), toutes les données non sûres qui sont intégrées à une production de données XML sont correctement neutralisées (ex: via la désactivation des DTDs (Entités externes))",null,null,"Haute"]
["W11","Gestion des sorties","Output encoding","Chaque réponse HTTP doit contenir un en-tête Content-Type précisant le type du contenu renvoyé par le serveur",null,null,"Moyenne"]
["W12","Protection des cookies","HTTPOnly","Le drapeau HTTPOnly est utilisé par défaut pour l'ensemble des cookies porteurs de session ou contenant des informations sensibles",null,null,"Haute"]
["W13","Gestion des erreurs","Configuration des réponses","Les pages d'erreur ne doivent pas retourner des informations sensibles, notamment des informations permettant d'identifier les composants",null,null,"Haute"]
["W14","Gestion des sorties","Entête HTTP","Les en-têtes HTTP ne doivent pas retourner d'information sensible (version du serveur, composants utilisés...)",null,null,"Moyenne"]
["W15","Gestion de l'exposition","Contrôle de l'exposition","Seuls les services requis pour le fonctionnement du produit doivent être actifs et seuls les ports réseau requis pour leur fonctionnement doivent être accessibles\n(NB : applicable uniquement si l'industriel ou un tiers sous sa responsabilité assure l'hébergement de tout ou partie des composants du produit, ou fournit tout ou partie du produit sous forme de service)",null,null,"Haute"]
["W16","Gestion de l'exposition","Durcissement du serveur","Les réponses du serveur applicatif doivent comporter a minima les entêtes HTTP de sécurité suivantes :\n* X-Content-Type-Options: nosniff\n* Strict-Transport-Security \"max-age=31536000\"\n* Content-Security-Policy: default-src 'self'. La Content-Security-Policy peut comporter une liste blanche de noms de domaines autorisés (exemple : Content-Security-Policy: default-src 'self' *.source-sure.example.net.). \n\nDe plus, la configuration doit être complétée par d'autres entêtes, comme X-XSS-Protection ou X-Frame-Options pour la prise en charge de la CSP sur des navigateurs anciens.",null,null,"Moyenne"]
["W17","Gestion de l'exposition","Connexion au serveur","Le serveur ne doit pas être directement accessible et des mécanismes de sécurité protègent ce dernier (exemple : reverse proxy, WAF, etc.)\n(NB : applicable uniquement si l'industriel ou un tiers sous sa responsabilité assure l'hébergement de tout ou partie des composants du produit, ou fournit tout ou partie du produit sous forme de service)",null,null,"Moyenne"]
["W18","Gestion de l'exposition","Ressources externes","Si l'application utilise un CDN, le téléchargement des ressources doit être protégé par le protocole HTTPS\n(NB : applicable uniquement si l'industriel ou un tiers sous sa responsabilité assure l'hébergement de tout ou partie des composants du produit, ou fournit tout ou partie du produit sous forme de service)",null,null,"Moyenne"]
["W19","Gestion de l'exposition","Ressources externes","Si l'application utilise un serveur distant non maitrisé pour l'hébergement de scripts (exemple : un CDN), un contrôle de l'intégrité des scripts téléchargés depuis ce serveur distant doit effectué via l'attribut HTML integrity",null,null,"Moyenne"]
["W20","Gestion de l’authentification","Authentification côté serveur","Des contrôles d'authentification sont effectués du côté serveur (contrôles de mots de passe, de certificats, authentification contextuelle….)",null,null,"Haute"]
["W21","Contrôle d’accès aux ressources","Moindre privilège - fonctions","Les utilisateurs ou applications clientes ne peuvent avoir accès qu'aux opérations strictement nécessaires à la réalisation de leur mission (au sens métier), pour lesquelles ils ont des autorisations spécifiques. ",null,null,"Haute"]
["W22","Contrôle d’accès aux ressources","Contrôles côté serveur","Toute demande d'usage/modification d’une référence directe à une ressource (clé de base de données, nom de fichier, ressource web, etc.) par le client fait nécessairement l’objet d’une vérification d'autorisation côté serveur et d'une autorisation explicite pour tout utilisateur.",null,null,"Haute"]
["W23","Gestion des entrées","Prévention des injections côté serveur","L'ensemble des entrées utilisateur doivent être traitées de manière sécurisées par le serveur, afin de proscrire tout type d'injection côté serveur quelle que soit les technologies utilisées.\n\nA titre d'exemple :\n* Prévention des injections en base de données (les requêtes SQL adressées à interpréteur SQL intègrant des données fournies par les utilisateurs, donc non sûres, doivent être préparées (\"prepared statement\"), ou les données doivent avoir été spécifiquement neutralisées vis à vis des risques d'injection SQL prélablement à leur usage dans la requête, explicitement ou par l'usage de fonctions de construction de requête SQL intégrant cette fonctionnalité de sécurité) ;\n* Prévention des injections dans des annuaires LDAP (toutes les données non sûres qui sont utilisées dans des requêtes LDAP doivent être correctement neutralisées soit en utilisant la bonne fonction d'encodage LDAP, soit par l'utilisation d'un framework tel que LINQtoLDAP). ",null,null,"Haute"]
["W24","Gestion des entrées","Encodage / échappement côté serveur","Les contrôles d'encodage/échappement servant au nettoyage des entrées utilisateurs doivent être effectués coté serveur.\nNB : des cas particuliers peuvent justifier d'effectuer certaines opérations d'échappement côté client. La pertinence de la réalisation de ce contrôle côté client est laissée à l'appréciation de l'auditeur, au regard du caractère d'exploitabilité associé au constat effectué",null,null,"Haute"]

{"sheet":"3 - App Mobile","index":4,"n_rows":25,"n_cols":7,"rows_kept":25,"cut":false,"hidden":false,"merged":[[1,0,1,6]]}
[]
["Résultat d'audit de sécurité - Application Mobile"]
[]
["ID","Périmètre","Nom court","Règles de sécurité","Notation","Commentaire","Gravité"]
["M1","Analyse Statique","Autorisation de l'application","Les permissions demandées par le produit (exemple : accès à l'appareil photo, utilisation du microphone, accès aux répertoires, etc.) sont réduites au strict nécessaire",null,null,"Haute"]
["M2","Analyse Statique","Version non sécurisée de l'OS","L'installation de l'application doit pouvoir s'effectuer sur un système d'exploitation sécurisé et non obsolète",null,null,"Moyenne"]
["M3","Stockage des données","Stockage sécurisé","Aucune donnée sensible n'est stockée hors du conteneur de l'application ou des fonctions de stockage sécurisées sont mises en œuvre par l'application",null,null,"Haute"]
["M4","Stockage des données","Keyboard Press Caching ","Le cache du clavier est désactivé sur les champs d'entrée textuels qui traitent de données sensibles.",null,null,"Moyenne"]
["M5","Stockage des données","Application Backgrounding","L'application ne permet aucun accès ni visualisation de données sensibles lorsqu'elle est en arrière-plan",null,null,"Moyenne"]
["M6","Stockage des données","Stockage donnée sensible","L'application ne garde pas les données sensibles en mémoire plus longtemps que nécessaire et la mémoire est explicitement nettoyée après son utilisation",null,null,"Moyenne"]
["M7","Stockage des données","Information de connexion","Les informations de connexion doivent être stockées de manière sécurisée sur le téléphone (stockage d'un jeton tel un cookie de session, jeton Oauth, SAML…)",null,null,"Haute"]
["M8","Analyse Dynamique","Divulgation d'information","Le journal de l'application (Logcat, Apple System Log (ASL)) ne doit pas enregistrer d'informations sensibles",null,null,"Moyenne"]
["M9","Analyse Dynamique","XML sanitization","Afin d'éviter une XXE (XML eXternal Entity attack), toutes les données non sûres qui sont intégrées à une production de données XML sont correctement neutralisées (ex: via la désactivation des DTDs (Entités externes))",null,null,"Haute"]
["M10","Analyse Dynamique","Validation du certificat","L'application doit vérifier que le backend possède un certificat valide (non révoqué, chaine de certification valide, etc.)\n(NB : applicable uniquement si l'industriel ou un tiers sous sa responsabilité assure l'hébergement de tout ou partie des composants du produit, ou fournit tout ou partie du produit sous forme de service)",null,null,"Haute"]
["M11","Analyse Dynamique","Rooted et Jaibreak","L'application détecte et réagit à la présence d'appareils rootés ou jailbreakés soit en alertant l'utilisateur ou en mettant fin à l'application",null,null,"Moyenne"]
["M12","Gestion des sorties","Configuration des réponses","Les pages d'erreur ne doivent pas retourner des informations sensibles, notamment des informations permettant d'identifier les composants",null,null,"Haute"]
["M13","Gestion des sessions","domaine cookies","Dans le cas de l'utilisation de cookies, les cookies porteurs de session sont protégés contre les requêtes Cross-Site : leurs domaines et chemins (drapeaux domain et path) sont définis avec une valeur suffisamment restrictive",null,null,"Haute"]
["M14","Gestion des sessions","Secure Attribute","Le drapeau de sécurité (secure attribute) est utilisé sur tous les cookies qui contiennent des données sensibles, y compris le cookie de session. ",null,null,"Haute"]
["M15","Gestion des sorties","HTTPOnly","Le drapeau HTTPOnly est utilisé par défaut pour l'ensemble des cookies porteurs de session ou contenant des informations  sensibles",null,null,"Haute"]
["M16","Android","Exposition de l'application","Les ressources de l'application ne doivent pas être exportées en dehors de l'application (en particulier les content providers)",null,null,"Haute"]
["M17","Gestion de l’authentification","Authentification côté serveur","Des contrôles d'authentification sont effectués du côté serveur (contrôles de mots de passe, de certificats, authentification contextuelle….)",null,null,"Haute"]
["M18","Contrôle d’accès aux ressources","Moindre privilège - fonctions","Les utilisateurs ou applications clientes ne peuvent avoir accès qu'aux opérations strictement nécessaires à la réalisation de leur mission (au sens métier), pour lesquelles ils ont des autorisations spécifiques. ",null,null,"Haute"]
["M19","Contrôle d’accès aux ressources","Contrôles côté serveur","Toute demande d'usage/modification d’une référence directe à une ressource (clé de base de données, nom de fichier, ressource web, etc.) par le client fait nécessairement l’objet d’une vérification d'autorisation côté serveur et d'une autorisation explicite pour tout utilisateur.",null,null,"Haute"]
["M20","Gestion des entrées","Prévention des injections côté serveur","L'ensemble des entrées utilisateur doivent être traitées de manière sécurisées par le serveur, afin de proscrire tout type d'injection côté serveur quelle que soit les technologies utilisées.\n\nA titre d'exemple :\n* Prévention des injections en base de données (les requêtes SQL adressées à interpréteur SQL intègrant des données fournies par les utilisateurs, donc non sûres, doivent être préparées (\"prepared statement\"), ou les données doivent avoir été spécifiquement neutralisées vis à vis des risques d'injection SQL prélablement à leur usage dans la requête, explicitement ou par l'usage de fonctions de construction de requête SQL intégrant cette fonctionnalité de sécurité) ;\n* Prévention des injections dans des annuaires LDAP (toutes les données non sûres qui sont utilisées dans des requêtes LDAP doivent être correctement neutralisées soit en utilisant la bonne fonction d'encodage LDAP, soit par l'utilisation d'un framework tel que LINQtoLDAP). ",null,null,"Haute"]
["M21","Gestion des entrées","Encodage / échappement côté serveur","Les contrôles d'encodage/échappement servant au nettoyage des entrées utilisateurs doivent être effectués coté serveur.\nNB : des cas particuliers peuvent justifier d'effectuer certaines opérations d'échappement côté client. La pertinence de la réalisation de ce contrôle côté client est laissée à l'appréciation de l'auditeur, au regard du caractère d'exploitabilité associé au constat effectué",null,null,"Haute"]

{"sheet":"3 - Client Lourd 3Tiers ou plus","index":5,"n_rows":27,"n_cols":7,"rows_kept":27,"cut":false,"hidden":false,"merged":[[1,0,1,6]]}
[]
["Résultat d'audit de sécurité - Client Lourd 3-Tiers ou plus"]
[]
["ID","Périmètre","Nom court","Règles de sécurité","Notation","Commentaire","Gravité"]
["T1","Analyse Statique","Stockage des données","Côté client, le client lourd ne stocke aucun secret (cf. définition du guide d'utilisation) en clair dans les binaires ou dans les fichiers qu'il manipule et accessible aux utilisateurs.",null,null,"Haute"]
["T2","Analyse statique","Signature du binaire","Le binaire de la solution doit être signé par l'éditeur afin de permettre la vérification de son intégrité lors de son installation",null,null,"Moyenne"]
["T3","Analyse dynamique","buffer overflow","Le client effectue des contrôles sur les tailles des entrées utilisateur afin de prévenir toute attaque par débordement de tampons",null,null,"Moyenne"]
["T4","Analyse dynamique","Injection de commande","Toute entrée de l'utilisateur sur le client lourd doit faire l'objet d'un nettoyage qui interdise en particulier les injections de commande (commandes arbitraires ciblant le système d'exploitation au travers de l'application)",null,null,"Haute"]
["T5","Analyse dynamique","Connexion au serveur","La base de données ne doit pas être directement accessible depuis le client lourd (utilisation d'un serveur applicatif)\n(NB : applicable uniquement si l'industriel ou un tiers sous sa responsabilité assure l'hébergement de tout ou partie des composants du produit, ou fournit tout ou partie du produit sous forme de service)",null,null,"Haute"]
["T6","Analyse dynamique","Graphical User Interface","Les fonctions accessibles par l'utilisateur au niveau du GUI de l'application ne doivent être activables qu'après avoir contrôlé que son niveau d'habilitation était suffisant",null,null,"Haute"]
["T7","Analyse dynamique","Analyse de la RAM","La RAM doit être nettoyée dès que l'usage d'un secret n'est plus nécessaire, afin d'éviter qu'elle ne contienne des secrets en clair\nNB : sous réserve que la technologie utilisée par le client lourd permette la gestion fine de la mémoire",null,null,"Moyenne"]
["T8","Gestion des sorties","Configuration des réponses","Les pages d'erreur ne doivent pas retourner des informations sensibles, notamment des informations permettant d'identifier les composants et technologies utilisés par le serveur\nNB : une fonctionnalité de debug dont l'accès est soumis à habilitation, contrôlé de façon robuste, et réservée à une faible population identifiée peut être acceptable si cela est justifié par des impératifs opérationnels",null,null,"Moyenne"]
["T9","Gestion de l’authentification","Authentification côté serveur","Des contrôles d'authentification sont effectués du côté serveur (contrôles de mots de passe, de certificats, authentification contextuelle….)",null,null,"Haute"]
["T10","Contrôle d’accès aux ressources","Moindre privilège - fonctions","Les utilisateurs ou applications clientes ne peuvent avoir accès qu'aux opérations strictement nécessaires à la réalisation de leur mission (au sens métier), pour lesquelles ils ont des autorisations spécifiques. ",null,null,"Haute"]
["T11","Contrôle d’accès aux ressources","Contrôles côté serveur","Toute demande d'usage/modification d’une référence directe à une ressource (clé de base de données, nom de fichier, ressource web, etc.) par le client fait nécessairement l’objet d’une vérification d'autorisation côté serveur et d'une autorisation explicite pour tout utilisateur.",null,null,"Haute"]
["T12","Gestion des entrées","Prévention des injections côté serveur","L'ensemble des entrées utilisateur doivent être traitées de manière sécurisées par le serveur, afin de proscrire tout type d'injection côté serveur quelle que soit les technologies utilisées.\n\nA titre d'exemple :\n* Prévention des injections en base de données (les requêtes SQL adressées à interpréteur SQL intègrant des données fournies par les utilisateurs, donc non sûres, doivent être préparées (\"prepared statement\"), ou les données doivent avoir été spécifiquement neutralisées vis à vis des risques d'injection SQL prélablement à leur usage dans la requête, explicitement ou par l'usage de fonctions de construction de requête SQL intégrant cette fonctionnalité de sécurité) ;\n* Prévention des injections dans des annuaires LDAP (toutes les données non sûres qui sont utilisées dans des requêtes LDAP doivent être correctement neutralisées soit en utilisant la bonne fonction d'encodage LDAP, soit par l'utilisation d'un framework tel que LINQtoLDAP). ",null,null,"Haute"]
["T13","Gestion des entrées","Encodage / échappement côté serveur","Les contrôles d'encodage/échappement servant au nettoyage des entrées utilisateurs doivent être effectués coté serveur.\nNB : des cas particuliers peuvent justifier d'effectuer certaines opérations d'échappement côté client. La pertinence de la réalisation de ce contrôle côté client est laissée à l'appréciation de l'auditeur, au regard du caractère d'exploitabilité associé au constat effectué",null,null,"Haute"]
["ID","Périmètre","Nom court","Précision si le client lourd intègre une partie web (si non applicable, l'indiquer dans la colonne notation pour toutes les règles)",null,"Commentaire","Gravité"]
["T14","Gestion des sessions","ID session","L'identifiant de session est communiqué exclusivement dans les en-têtes HTTP Cookie, Set-Cookie ou Authorization. Il ne doit jamais apparaître dans l’URL, les messages d'erreur, les formulaires, les journaux, etc.",null,null,"Moyenne"]
["T15","Gestion des cookies","Secure Attribute","Le drapeau de sécurité (secure attribute) est utilisé sur tous les cookies qui contiennent des données sensibles, y compris le cookie de session. ",null,null,"Moyenne"]
["T16","Gestion des sessions","CSRF","Des protections contre les CSRF doivent être mises en œuvre telles que l'utilisation de jeton anti-CSRF, de jeton de synchronisation, de frameworks, d'attributs sur les cookies (SameSite) ou de cookie de double soumission, etc.",null,null,"Moyenne"]
["T17","Gestion de l’authentification","Authentification des pages","Toutes les pages et ressources exigent une authentification exceptées celles qui sont spécialement prévues pour être publiques. ",null,null,"Moyenne"]
["T18","Gestion des cookies","HTTPOnly","Le drapeau HTTPOnly est utilisé par défaut pour l'ensemble des cookies porteurs de session ou contenant des informations sensibles",null,null,"Moyenne"]
["T19","Gestion des sorties","Entête HTTP","Les en-têtes HTTP ne doivent pas retourner d'information sensible (version du serveur, composants utilisés...)",null,null,"Moyenne"]
["T20","Gestion de l'exposition","Contrôle de l'exposition","Seuls les services requis pour le fonctionnement du produit doivent être actifs et seuls les ports réseau requis pour leur fonctionnement doivent être accessibles\n(NB : applicable uniquement si l'industriel ou un tiers sous sa responsabilité assure l'hébergement de tout ou partie des composants du produit, ou fournit tout ou partie du produit sous forme de service)",null,null,"Moyenne"]
["T21","Gestion de l'exposition","Durcissement du serveur","Les réponses du serveur applicatif doivent comporter a minima les entêtes HTTP de sécurité suivantes :\n* X-Content-Type-Options: nosniff\n* Strict-Transport-Security \"max-age=31536000\"\n* Content-Security-Policy: default-src 'self'. La Content-Security-Policy peut comporter une liste blanche de noms de domaines autorisés (exemple : Content-Security-Policy: default-src 'self' *.source-sure.example.net.). \n\nDe plus, la configuration doit être complétée par d'autres entêtes, comme X-XSS-Protection ou X-Frame-Options pour la prise en charge de la CSP sur des navigateurs anciens.",null,null,"Moyenne"]
["T22","Gestion de l'exposition","Connexion au serveur","Le serveur ne doit pas être directement accessible et des mécanismes de sécurité protègent ce dernier (exemple : reverse proxy, WAF, etc.)\n(NB : applicable uniquement si l'industriel ou un tiers sous sa responsabilité assure l'hébergement de tout ou partie des composants du produit, ou fournit tout ou partie du produit sous forme de service)",null,null,"Moyenne"]

{"sheet":"3 - Client Lourd < 3-Tiers","index":6,"n_rows":28,"n_cols":7,"rows_kept":28,"cut":false,"hidden":false,"merged":[[1,0,1,6]]}
[]
["Résultat d'audit de sécurité - Client Lourd 2-Tiers ou moins"]
[]
["ID","Périmètre","Nom court","Règles de sécurité","Notation","Commentaire","Gravité"]
["D1","Analyse Statique","Stockage des données","Côté client, le client lourd ne stocke aucun secret (cf. définition du guide d'utilisation) en clair dans les binaires ou dans les fichiers qu'il manipule et accessible aux utilisateurs.",null,null,"Haute"]
["D2","Analyse statique","Signature du binaire","Le binaire de la solution doit être signé par l'éditeur afin de permettre la vérification de son intégrité lors de son installation",null,null,"Moyenne"]
["D3","Analyse dynamique","buffer overflow","Le client effectue des contrôles sur les tailles des entrées utilisateur afin de prévenir toute attaque par débordement de tampons",null,null,"Moyenne"]
["D4","Analyse dynamique","Injection de commande","Toute entrée de l'utilisateur sur le client lourd doit faire l'objet d'un nettoyage qui interdise en particulier les injections de commande (commandes arbitraires ciblant le système d'exploitation au travers de l'application)",null,null,"Haute"]
["D5","Analyse dynamique","Graphical User Interface","Les fonctions accessibles par l'utilisateur au niveau du GUI de l'application ne doivent être activables qu'après avoir contrôlé que son niveau d'habilitation était suffisant",null,null,"Haute"]
["D6","Analyse dynamique","Analyse de la RAM","La RAM doit être nettoyée dès que l'usage d'un secret n'est plus nécessaire, afin d'éviter qu'elle ne contienne des secrets en clair\nNB : sous réserve que la technologie utilisée par le client lourd permette la gestion fine de la mémoire",null,null,"Moyenne"]
["D7","Gestion des sorties","Configuration des réponses","Les pages d'erreur ne doivent pas retourner des informations sensibles, notamment des informations permettant d'identifier les composants et technologies utilisés par le serveur\nNB : une fonctionnalité de debug dont l'accès est soumis à habilitation, contrôlé de façon robuste, et réservée à une faible population identifiée peut être acceptable si cela est justifié par des impératifs opérationnels",null,null,"Moyenne"]
["ID","Périmètre","Nom court","Précision si le client lourd intègre une partie web (si non applicable, l'indiquer dans la colonne notation pour toutes les règles)","Notation","Commentaire","Gravité"]
["D8","Gestion des sessions","ID session","L'identifiant de session est communiqué exclusivement dans les en-têtes HTTP Cookie, Set-Cookie ou Authorization. Il ne doit jamais apparaître dans l’URL, les messages d'erreur, les formulaires, les journaux, etc.",null,null,"Moyenne"]
["D9","Gestion des cookies","Secure Attribute","Le drapeau de sécurité (secure attribute) est utilisé sur tous les cookies qui contiennent des données sensibles, y compris le cookie de session. ",null,null,"Moyenne"]
["D10","Gestion des sessions","CSRF","Des protections contre les CSRF doivent être mises en œuvre telles que l'utilisation de jeton anti-CSRF, de jeton de synchronisation, de frameworks, d'attributs sur les cookies (SameSite) ou de cookie de double soumission, etc.",null,null,"Moyenne"]
["D11","Gestion de l’authentification","Authentification des pages","Toutes les pages et ressources exigent une authentification exceptées celles qui sont spécialement prévues pour être publiques. ",null,null,"Moyenne"]
["D12","Gestion des cookies","HTTPOnly","Le drapeau HTTPOnly est utilisé par défaut pour l'ensemble des cookies porteurs de session ou contenant des informations sensibles",null,null,"Moyenne"]
["D13","Gestion des sorties","Entête HTTP","Les en-têtes HTTP ne doivent pas retourner d'information sensible (version du serveur, composants utilisés...)",null,null,"Moyenne"]
["D14","Gestion de l'exposition","Contrôle de l'exposition","Seuls les services requis pour le fonctionnement du produit doivent être actifs et seuls les ports réseau requis pour leur fonctionnement doivent être accessibles\n(NB : applicable uniquement si l'industriel ou un tiers sous sa responsabilité assure l'hébergement de tout ou partie des composants du produit, ou fournit tout ou partie du produit sous forme de service)",null,null,"Moyenne"]
["D15","Gestion de l'exposition","Durcissement du serveur","Les réponses du serveur applicatif doivent comporter a minima les entêtes HTTP de sécurité suivantes :\n* X-Content-Type-Options: nosniff\n* Strict-Transport-Security \"max-age=31536000\"\n* Content-Security-Policy: default-src 'self'. La Content-Security-Policy peut comporter une liste blanche de noms de domaines autorisés (exemple : Content-Security-Policy: default-src 'self' *.source-sure.example.net.). \n\nDe plus, la configuration doit être complétée par d'autres entêtes, comme X-XSS-Protection ou X-Frame-Options pour la prise en charge de la CSP sur des navigateurs anciens.",null,null,"Moyenne"]
["D16","Gestion de l'exposition","Connexion au serveur","Le serveur ne doit pas être directement accessible et des mécanismes de sécurité protègent ce dernier (exemple : reverse proxy, WAF, etc.)\n(NB : applicable uniquement si l'industriel ou un tiers sous sa responsabilité assure l'hébergement de tout ou partie des composants du produit, ou fournit tout ou partie du produit sous forme de service)",null,null,"Moyenne"]
["ID","Périmètre","Nom court","L'auditeur doit vérifier les points suivants et les inclure dans le rapport, bien qu'ils ne soient pas pris en compte dans le référencement en raison de la nature des architectures 2-tiers ou moins","Notation","Commentaire","Gravité"]
["NA1","Gestion de l’authentification","Authentification côté serveur","Des contrôles d'authentification sont effectués du côté serveur (contrôles de mots de passe, de certificats, authentification contextuelle….)",null,null,"N/A"]
["NA2","Contrôle d’accès aux ressources","Moindre privilège - fonctions","Les utilisateurs ou applications clientes ne peuvent avoir accès qu'aux opérations strictement nécessaires à la réalisation de leur mission (au sens métier), pour lesquelles ils ont des autorisations spécifiques. ",null,null,"N/A"]
["NA3","Contrôle d’accès aux ressources","Contrôles côté serveur","Toute demande d'usage/modification d’une référence directe à une ressource (clé de base de données, nom de fichier, ressource web, etc.) par le client fait nécessairement l’objet d’une vérification d'autorisation côté serveur et d'une autorisation explicite pour tout utilisateur.",null,null,"N/A"]
["NA4","Gestion des entrées","Prévention des injections côté serveur","L'ensemble des entrées utilisateur doivent être traitées de manière sécurisées par le serveur, afin de proscrire tout type d'injection côté serveur quelle que soit les technologies utilisées.\n\nA titre d'exemple :\n* Prévention des injections en base de données (les requêtes SQL adressées à interpréteur SQL intègrant des données fournies par les utilisateurs, donc non sûres, doivent être préparées (\"prepared statement\"), ou les données doivent avoir été spécifiquement neutralisées vis à vis des risques d'injection SQL prélablement à leur usage dans la requête, explicitement ou par l'usage de fonctions de construction de requête SQL intégrant cette fonctionnalité de sécurité) ;\n* Prévention des injections dans des annuaires LDAP (toutes les données non sûres qui sont utilisées dans des requêtes LDAP doivent être correctement neutralisées soit en utilisant la bonne fonction d'encodage LDAP, soit par l'utilisation d'un framework tel que LINQtoLDAP). ",null,null,"N/A"]
["NA5","Gestion des entrées","Encodage / échappement côté serveur","Les contrôles d'encodage/échappement servant au nettoyage des entrées utilisateurs doivent être effectués coté serveur.\nNB : des cas particuliers peuvent justifier d'effectuer certaines opérations d'échappement côté client. La pertinence de la réalisation de ce contrôle côté client est laissée à l'appréciation de l'auditeur, au regard du caractère d'exploitabilité associé au constat effectué",null,null,"N/A"]
["NA6","Analyse dynamique","Connexion au serveur","La base de données ne doit pas être directement accessible depuis le client lourd (utilisation d'un serveur applicatif)",null,null,"N/A"]

{"sheet":"Feuille Calcul Resultat","index":7,"n_rows":11,"n_cols":2,"rows_kept":11,"cut":false,"hidden":true,"merged":[]}
["Evaluation Base Commune & Web App",{"$f":"IF(SUM(IF(Tableau1[Notation]=\"NON\",1,0))+SUM(IF(Tableau2[Notation]=\"NON\",1,0))>=11,0,1)","v":1}]
["Evaluation Base Commune & App Mobile",{"$f":"IF(SUM(IF(Tableau1[Notation]=\"NON\",1,0))+SUM(IF(Tableau16[Notation]=\"NON\",1,0))>=11,0,1)","v":1}]
["Evaluation Base Commune & Client Lourd 3Tiers ou plus",{"$f":"IF(SUM(IF(Tableau1[Notation]=\"NON\",1,0))+SUM(IF(Tableau164[Notation]=\"NON\",1,0))>=11,0,1)","v":1}]
["Evaluation Base Commune & Client Lourd < 3-Tiers",{"$f":"IF(SUM(IF(Tableau1[Notation]=\"NON\",1,0))+SUM(IF(INDEX(Tableau1645[Notation],1):INDEX(Tableau1645[Notation],17)=\"NON\",1,0))>=11,0,1)","v":1}]
[]
["Haute  Base Commune",{"$f":"IF(COUNTIFS(Tableau1[Notation],\"NON\",Tableau1[Gravité],\"Haute\")>=1,0,1)","v":1}]
["Haute Web App",{"$f":"IF(COUNTIFS(Tableau2[Notation],\"NON\",Tableau2[Gravité],\"Haute\")>=1,0,1)","v":1}]
["Haute App Mobile",{"$f":"IF(COUNTIFS(Tableau16[Notation],\"NON\",Tableau16[Gravité],\"Haute\")>=1,0,1)","v":1}]
["Haute Client Lourd 3Tiers ou plus",{"$f":"IF(COUNTIFS(Tableau164[Notation],\"NON\",Tableau164[Gravité],\"Haute\")>=1,0,1)","v":1}]
["Haute Client Lourd < 3-Tiers",{"$f":"IF(COUNTIFS(Tableau1645[Notation],\"NON\",Tableau1645[Gravité],\"Haute\")>=1,0,1)","v":1}]
["Résultat total",{"$f":"IF(COUNTIF('Feuille Calcul Resultat'!B1:B10,\"0\")>=1,0,1)","v":1}]